/**
 * LastNews
 * 
 * Aggiorna i div con le ultime foto / gallery inserite da parenti e amici.
 * @class LastNews
 * @param username
 * @param divIscr
 * @param divAmici
 */
function LastNews(username,divIscr,divAmici){
	/**
	 * @field
	 */
	var that = this;
	/**
	 * Il tempo tra il caricamento delle iscrizioni e
	 * delle attivita' degli amici
	 * @field
	 */
	var timeout = 30000; //30 s
	/**
	 * Se ci sono chiamate in esecuzione
	 * @field
	 */
	var calling = 0;
	/**
	 * @field
	 */
	var iscrizioni = null;
	/**
	 * @field
	 */
	var amici = null;
	/**
	 * @field
	 */
	var divIscrCss = divIscr;
	/**
	 * @field
	 */
	var divAmiciCss = divAmici;
	/**
	 * @field
	 */
	var divAmici;
	/**
	 * @field
	 */
	var divIscr;
	/**
	 * @field
	 */
	this.erroreIscr = 0;
	/**
	 * @field
	 */
	this.erroreAmici = 0;
	/**
	 * @field
	 */
	var loader = $('<img src="images/ajax-loader.gif" alt="loader ajax" style="display:block;margin:0 auto;" />');
	/**
	 * @field
	 */
	var call = undefined;
	/**
	 * Scrive le ultime notizie!
	 */
	this.lastNewsIscr = function(){
		
		divIscr.empty();
		
		if(iscrizioni != null && iscrizioni.length != 0){
			
			for(var i = 0;i < iscrizioni.length; i++){
			
				var html = $('<div class="notizia"></div>');
				
				var link = $('<a href="javascript:ajax.doAjax(\'index.php?c=CUtente&a=mostraProfilo&username='+iscrizioni[i].autore+'\')">'+iscrizioni[i].autore+'</a>');
				
				html.append(link);
				html.append(' '+iscrizioni[i].azione+' ');
				
				if(iscrizioni[i].fotoid == undefined){
					
					link = $('<a href="javascript:ajax.doAjax(\'index.php?c=CGallery&a=mostraGallery&id='+iscrizioni[i].galleryid+'\')">una gallery</a>');
					html.append(link);
					
				}else{
					link = $('<a href="javascript:ajax.doAjax(\'index.php?c=CFoto&a=viewfoto&id='+iscrizioni[i].fotoid+'\')"> una foto</a>');
					html.append(link);
					
				}
				
				divIscr.append(html);
				
			}
		}else{
			divIscr.append('<p>Non sei ancora iscritto ad alcun utente! / I tuoi iscritti ancora non pubblicano nulla!</p>');
		}
	}
	/**
	 * Aggiorna le ultime notizie
	 */
	this.lastNewsAmici = function(){
		
		divAmici.empty();
		
		if(amici != null && amici.length != 0){
			
			for(var i = 0;i < amici.length; i++){
			
				var html = $('<div class="notizia"></div>');
				
				var link = $('<a href="javascript:ajax.doAjax(\'index.php?c=CUtente&a=mostraProfilo&username='+amici[i].autore+'\')">'+amici[i].autore+'</a>');
				
				html.append(link);
				html.append(' '+amici[i].azione+' ');
				
				if(amici[i].fotoid == undefined){
					
					link = $('<a href="javascript:ajax.doAjax(\'index.php?c=CGallery&a=mostraGallery&id='+amici[i].galleryid+'\')">una gallery</a>');
					html.append(link);
					
				}else{
					link = $('<a href="javascript:ajax.doAjax(\'index.php?c=CFoto&a=viewfoto&id='+amici[i].fotoid+'\')"> una foto</a>');
					html.append(link);
					
				}
				
				divAmici.append(html);
				
			}
		}else{
			divAmici.append('<p>Non sei amico di nessun utente! / I tuoi iscritti ancora non pubblicano nulla!</p>');
		}
	}
	/**
	 * Torna tutte le info dalle iscrizioni
	 */
	this.iscrizioniAjax = function(){
		
		calling++;
		
		divIscr.empty();
		divIscr.append(loader.clone());
		
		var data = {
			c:'CUtente',
			a:'mostraNotizieIscritti',
			u:'on'
		}
		
		$.ajax({
			
			url:'index.php',
			data:data,
			type:'POST',
			success:that.iscrizioniHandler
		});
		
	}
	/**
	 * Iscrizioni Handler
	 * @param html
	 * @param response
	 */
	this.iscrizioniHandler = function(html,response){
		calling--;
		
		try {
			iscrizioni = $.parseJSON(html);
		}catch(e){
			window.messaggioPopup.display('Errore','Notizie iscrizioni non caricate!');
			
			if(window.console && window.debug){
				window.console.log('Gestore rimosso!')
			}
			
			window.clearTimeout(call);
			divAmici.append('<p>Errore nella chiamata!</p>');
			
			that.erroreIscr++;
			
			return;
		}
		
		//Draw
		that.lastNewsIscr();
		
	}
	/**
	 * Torna tutte le info dagli amici
	 */
	this.amiciAjax = function(){
		calling++;
		
		divAmici.empty();
		divAmici.append(loader.clone());
		
		var data = {
			c:'CUtente',
			a:'mostraNotizieAmici',
			u:'on'
		};
		
		$.ajax({
			url:'index.php',
			type:'POST',
			data:data,
			success:that.amiciHandler
		});
		
	}
	/**
	 * AmiciHandler
	 * @param html
	 * @param response
	 */
	this.amiciHandler = function(html,response){
		
		calling--;
		
		try{
			amici = $.parseJSON(html);
		}catch(e){
			
			window.messaggioPopup.display('Errore','Amici impossibile da richiedere!');
			
			if(window.console && window.debug){
				window.console.log('Errore! Gestore disabilitato!');
			}
			
			window.clearTimeout(call);
			divAmici.append('<p>Errore nella chiamata!</p>');
			
			that.erroreAmici++;
			
			return;
		}
		
		//Draw
		that.lastNewsAmici();
		
	}
	/**
	 * gestore chiamate
	 */
	this.gestore = function(){
		
		//Se non c'e' piu' nulla non serve ricaricare i div
		//Ma se le iscrizioni sono vuote popola almeno l'array
		if($(divIscrCss).length == 1 || iscrizioni == null){
			divIscr = $(divIscrCss);
			that.iscrizioniAjax();
			
		}
		//Se non c'e' piu' nulla non serve ricaricare i div
		//Ma se gli amici sono vuoti popola almeno l'array
		if($(divAmiciCss).length == 1 || amici == null){
			divAmici = $(divAmiciCss);
			that.amiciAjax();
		}
		
		call = window.setTimeout(that.gestore,timeout);
	}
	/**
	 * Draw
	 */
	this.drawAmici = function(){
		
		if(amici == null){
			that.amiciAjax();
		}else{
		
			divAmici = $(divAmiciCss);
			that.lastNewsAmici();
		}
	}
	/**
	 * Draw
	 */
	this.drawIscr = function(){
		if(iscrizioni == null){
			that.iscrizioniAjax();
		}else{
			divIscr = $(divIscrCss);
			that.lastNewsIscr();
		}
		
	}
	
	call = this.gestore();
	
} 
